package com.briup.oagg.dataset.mapper.ext;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 数据集业务扩展映射器接口
 */
public interface DataExtMapper{
    /**
     * 新建数据集数据表
     * @param tableName  表名
     * @param columnMap  列名集合
     */
    void createTable(@Param("tableName") String tableName,@Param("columnMap") Map<String,String> columnMap);

    /**
     * 新增数据
     * @param tableName
     * @param list
     */
    void insertData(@Param("tableName") String tableName,@Param("list") List<String> list);

    /**
     * 根据数据编号删除指定数据集中的数据
     * @param datasetId
     * @param dataId
     */
    void deleteById(@Param("datasetId") String datasetId,@Param("dataId") String dataId);

    /**
     * 根据数据编号查询数据
     * @param datasetId
     * @param dataId
     */
    Map selectById(@Param("datasetId") String datasetId,@Param("dataId") String dataId);

    /**
     * 分页查询指定数据集对应的数据信息
     * @param page
     * @param datasetId
     * @return
     */
    Page<Map> selectByPage(Page page, @Param("datasetId") String datasetId);

    /**
     * 根据数据集编号查询对应的所有的数据信息
     * @param datasetId 数据集编号
     * @return
     */
    List<Map> selectByDatasetId(String datasetId);

    /**
     * 查询是否存在对应的数据表
     * @param tableName
     */
    Integer selectTableByName(String tableName);

    /**
     * 根据数据集编号删除对应的数据表
     * @param datasetId
     */
    void dropTable(String datasetId);
}
